# 这是一个对应ip进行限流的频率类
from rest_framework.throttling import SimpleRateThrottle

class IPThrottle(SimpleRateThrottle):
    # 在settings中配置频率时使用到的关键字，有scope来指定
    scope = 'IP'
    def get_cache_key(self, request, view):
        # 这里return什么，就以什么作为限制，这里限制ip，直接return ip就可以
        return request.META.get('REMOTE_ADDR')
    #可以在这里设置访问频率
    # def get_rate(self):
    #     return '3/m'

class UserNameThrottle(SimpleRateThrottle):
    # 在settings中配置频率时使用到的关键字，有scope来指定
    scope = 'UserName'

    def get_cache_key(self, request, view):
        #限制同一个用户对接口的访问频率
        return request.user.pk
    # 可以在这里设置访问频率
    # def get_rate(self):
    #     return '1/m'